home *** CD-ROM | disk | FTP | other *** search
/ Chip 2003 December / CHIP_CD_2003-12.iso / macos / pack1 / files / maczip.sit / MacZip 1.06 final / README.TXT < prev    next >
Text File  |  2000-11-20  |  21KB  |  570 lines

  1. A free Macintosh Port of Info-ZIP's 
  2. Zip and UnZip
  3. By Dirk Haase, d_haase@sitec.net
  4. Home page: www.sitec.net/maczip
  5. Mirror page:
  6. www.haase-online.de/dirk/maczip
  7. ================================
  8.  
  9.  
  10.  
  11. Abstract:
  12. ---------
  13. MacZip is a cross-platform compatible tool that includes
  14. both Zip (for compression) and UnZip (for extraction).
  15.  
  16. Zip is a compression and file packaging utility for Unix,
  17. VMS, MSDOS, OS/2, Windows 9x, Windows NT, Atari, Macintosh,
  18. Amiga, Acorn RISC OS, and other systems.
  19.  
  20. UnZip unpacks zip archives. The Zip and UnZip programs can
  21. process archives pro- duced by PKZIP, and PKZIP and PKUNZIP
  22. can work with archives produced by zip. Zip version 2.2 is
  23. compatible with PKZIP 2.04.
  24.  
  25. If you are new to MacZip please read first the file 
  26. "ReadMe.1st".
  27.  
  28.  
  29.  
  30. License:
  31. --------
  32.   Copyright (c) 1990-2000 Info-ZIP.  All rights reserved.
  33.  
  34.   See the accompanying file LICENSE, version 2000-Mar-25 
  35.   or later for terms of use.
  36.   If, for some reason, both of these files are missing, 
  37.   the Info-ZIP license also may be found at:  
  38.   ftp://ftp.freesoftware.com/pub/infozip/license.html
  39.  
  40.  
  41. Requirements
  42. ------------
  43. MacZip requires at least System 7 and a Macintosh with a
  44. minimum of a Motorola 68020 or PowerPC 601 processor. Other
  45. configurations may work but it is not tested at all.
  46.  
  47. The application is distributed as a fat binary with both
  48. regular 68K and native PowerPC versions included.
  49.  
  50.  
  51.  
  52. Installation
  53. ------------
  54. Move the executable(s) somewhere--for example, drag it (or
  55. them) to your Applications folder.  For easy access, make an
  56. alias in the Launcher Control Panel or directly on your
  57. desktop. The GUI is very simple. It was not my intention to
  58. make a full-blown GUI, however I think it is comfortable
  59. enough to use it as regular tool.
  60.  
  61. This port supports also Apple-event. So you can install it
  62. in your WWW-Browser as a helper app.
  63.  
  64. For more Info about the contents of this package, take a
  65. look into the "macos/Contents" (or :macos:Contents) file.
  66. Some notes on how to rebuild the Macintosh applications can
  67. be found in INSTALL.
  68.  
  69.  
  70.  
  71. Usage:
  72. ------
  73.  
  74. Basically there are four ways to start MacZip:
  75.  
  76. a) Drag'n Drop
  77. b) using the Dialog box (Menu: File -> Zip/Unzip):
  78.  
  79. Please read the file "ReadMe.1st" 
  80. for the description of the items a and b.
  81.  
  82. c) Using the Command line (Menu: File->Command Line):
  83.     The Zip & UnZip tools are command line tools. So the
  84.     behavior is exactly the same like the Zip & UnZip tools on
  85.     Unix or Windows/DOS. This means, if you want to zip some
  86.     files, you have to write a command line like this: "zip
  87.     [switches] path_to_zip_archive path_to_files_folders"
  88.  
  89.    - Go to "File" and select "Command Line" and the "MacZip Entry box"
  90.      Dialog Box appears.
  91.  
  92.    An example:
  93.  
  94.    a: your zip may be created at
  95.            Macintosh HD:applications:archive.zip
  96.  
  97.    b: your files may be found at
  98.            Macintosh HD:somewhere:my_folder_to_archive:*
  99.  
  100.    Note: At the end of the path there must be a filename or a wild card !
  101.    (see Footnote: 1 wild card, 2 Mac path names)
  102.  
  103.    So the command line should look like (one line!):
  104.  
  105.    zip "Macintosh HD:applications:archive.zip" "Macintosh HD:somewhere:my_folder_to_archive:*"
  106.  
  107.    - Click on "Enter" to start the task.
  108.  
  109. Since you can not set a default folder you have to enter
  110. always a full qualified path names. Full-qualified path
  111. names are path names including the Volume name ! (see
  112. Footnote: 2 Mac path names)
  113.  
  114.  
  115.  
  116. d) Using Applescript:
  117.  
  118. There is only one additional event defined: "do_cmd". You
  119. can enter every valid command line. The first word must be
  120. "zip" or "unzip" to select the action (compress or
  121. extraction).
  122.  
  123. See sample Applescript:
  124.  
  125.         tell application "MacZip (PPC)"
  126.             activate
  127.             with timeout of 90000 seconds
  128.                 do_cmd "zip -rjjN Volume:archive \"My Volume:*\" "
  129.             end timeout
  130.         end tell
  131.  
  132. This script opens MacZip, brings it to the foreground on the
  133. Mac, starts the zip action with the command line: zip -rjjN
  134. Volume:archive "My Volume:*" .
  135.  
  136.  
  137. A short introduction is also available online:
  138. http://www.sitec.net/maczip/How-To-Do/
  139.  
  140. It's possible to stop the run of Zip/Unzip with the well
  141. known shortcut [Command] + [.].
  142.  
  143.  
  144. ---------------------------------------------------------------------------
  145.  
  146. There are some Mac-specific switches available.
  147. Zip Module:
  148.        -df    [MacOS] Include only data-fork of files zipped into
  149.               the  archive.   Good for exporting files to foreign
  150.               operating-systems.  Resource-forks will be  ignored
  151.               at all.
  152.  
  153.        -jj    [MacOS] record Fullpath (+ Volname).  The  complete
  154.               path  including  volume  will be stored. By default
  155.               the relative path will be stored.
  156.  
  157.        -S     [MSDOS, OS/2, WIN32 and ATARI] Include  system  and
  158.               hidden files.
  159.               [MacOS]  Includes finder invisible files, which are
  160.               ignored otherwise.
  161.  
  162. Unzip Module:
  163.        -E     [MacOS only] display contents of MacOS extra  field
  164.               during restore operation.
  165.  
  166.        -i     [MacOS only] ignore filenames stored in MacOS extra
  167.               fields.  Instead,  the  most  compatible   filename
  168.               stored in the generic part of the entry's header is
  169.               used.
  170.  
  171.        -J     [MacOS only] ignore MacOS extra fields.  All Macin-
  172.               tosh  specific  info  is  skipped.  Data-fork   and
  173.               resource-fork are restored as separate files.
  174.  
  175.  
  176. Select [File]->[Get Help on Zip/Unzip] for a complete list
  177. of switches.
  178.  
  179.  
  180.  
  181. Limitations / Problems:
  182. -----------------------
  183.  
  184.     - Aliases are not supported. I tried, but I got broken
  185.     aliases This port will silently ignore all aliases. It's on
  186.     my to-do list for future releases.
  187.  
  188.     - Zip needs much memory to compress many files: You may need
  189.     to increase the 'Preferred Size' in 'Get Info'. Values of 12
  190.     Megabytes or more are possible
  191.  
  192.     - Unzip needs about 500 Kbytes of memory to unzip no matter
  193.     how many files were compressed and expanded.
  194.  
  195.     - and finally one big macintosh-related problem: This port
  196.     has one weak point: It's based on path names. As you may be
  197.     already know: Path names are not unique on a Mac ! The main
  198.     reason is that an attempt to implement support exact saving
  199.     of the MacOS specific internal file structures would require
  200.     a throughout rewrite of major parts of shared code, probably
  201.     sacrifying compatibility with other systems. I have no
  202.     solution at the moment. The port will just warn you if you
  203.     try zip from / to a volume which has a duplicate name.
  204.     MacZip has problems to find the archive or the files. My
  205.     (Big) recommendation: Name all your volumes with a unique
  206.     name and MacZip will run without any problem.
  207.  
  208.  
  209. Known Bugs:
  210.  
  211.     - crypted files in a zip archive are sometimes corrupt: I
  212.     get an error message: invalid compressed data to inflate.
  213.     Appearance of this error is purely be chance: I did a small
  214.     test: Unzipping an archive containing 3589 files 56 files
  215.     fails to unzip, so about 1.5%. Root cause is completely
  216.     unclear to me :(
  217.  
  218. I strongly recommend to test your archive (e.g. unzip -t archive).
  219.  
  220.  
  221.  
  222.  
  223.  
  224. Zip Programs / Macintosh Extra-Data:
  225. -----------------------------------------
  226. A brief overview:
  227. Currently, as far as I know, there are 6 Zip programs
  228. available for the Macintosh platform. These programs build
  229. (of course) different variants of Zip files:
  230.  
  231.     - Info-ZIP's first Port of Zip. Ported by Johnny Lee This
  232.     Port is rather outdated and no longer supported (since
  233.     1992). 68K only. Only minimal Mac-info is stored
  234.     (Creator/Type, Finder attributes). Creator/Type: '????' /
  235.     '????' Until year 1998, only UnZip 5.32 survived.
  236.  
  237.     - ZipIt by Tom Brown. This is Shareware and still supported
  238.     I think. ZipIt has a nice GUI, but I found it can't handle
  239.     large Zip files quite well. ZipIt compresses Macintosh files
  240.     using the Mac Binary format. So, transferring files to other
  241.     platforms is not so easy. Only minimal Mac-info is stored
  242.     (Creator/Type, Finder attributes). Mac filenames are changed
  243.     to a most compatible filename. Creator/Type: 'ZIP ' / 'ZIP '
  244.  
  245.     - PKZIP/mac v2.03/210d. This is Shareware. This Zip
  246.     implementation for the Mac can be found on ASI's web site
  247.     (http://www.asizip.com/products/products.htm).  The name of
  248.     this program is misleading, it is NOT a product from PKWARE.
  249.      ASI's last release version is v2.03, and they also offer a
  250.     newer beta version PKZIP/mac 210d. But even the Beta version
  251.     is rather outdated (1995). Only minimal Mac-info is stored
  252.     (Creator/Type, Finder attributes). The Zipfile format looks
  253.     like incompatible to other platforms. (More details about
  254.     the compatibility issue can be found in
  255.     proginfo/3rdparty.bug!). Type: 'PKz1' Mac filenames are
  256.     restored without any change.
  257.  
  258.     - Aladdin DropZip 1999, This is Shareware. Aladdin choosed
  259.     the format of ZipIt. Therefore, it has the some drawbacks
  260.     like ZipIt. Creator/Type: 'SITx' / 'ZIP '
  261.  
  262.     - SmartZip 1.0 1999 - by Marco Bambini Vampire Software.
  263.     This is Shareware. SmartZip compresses Macintosh files using
  264.     the Mac Binary. Therefore, it has the same drawbacks like
  265.     ZipIt. Creator/Type: 'dZIP' / 'ZIP '
  266.     
  267.     
  268. and finally:
  269.     - Info-ZIP's latest Port of Zip. MacZip 1.0. Ported by me :-) 
  270.     It is supported (of course) and up to date. Full set of
  271.     macintosh info is stored: Creator/Type, Finder attributes,
  272.     Finder comments, MacOS 8.0 Folder settings, Icon/Folder
  273.     Positions ... Mac filenames are restored without any change.
  274.     Creator/Type: 'IZip' / 'ZIP '
  275.  
  276.  
  277. Compatibility of my port; Extraction:
  278.     - Archives from Info-ZIP's first port (by Johnny Lee) are
  279.       still compatible. 
  280.     - Extraction of ZipIt archives is
  281.       supported. This support is not complete: Filenames are
  282.       correct but Directory names are sometimes mangled to a DOS
  283.       compatible form. Segmented archives are not supported. 
  284.     - PKZiP/mac archive files are extracted without resource-forks
  285.       and without any Finder info. I have no information about
  286.       that zip format.
  287.  
  288. Compatibility of my port; Compression:
  289.     - My port supports only the new Info-ZIP format (introduced
  290.       with this port). Therefore archives created by MacZip 1.0
  291.       (March 1999) must be extracted with this version or later
  292.       releases of Info-ZIP's UnZip to restore the complete set of
  293.       Macintosh attributes.
  294.  
  295. Note: This port is complete unrelated to the shareware ZipIt. Even more,
  296. handling of special Macintosh attributes is incompatible with ZipIt.
  297. This port (MacZip) may be used to extract archives created by ZipIt,
  298. but make sure that you get the result as you expected.
  299.  
  300.  
  301.  
  302. Macintosh Files; File Forks:
  303. ----------------------------
  304.  
  305. All Macintosh files comprise two forks, known as the data
  306. fork and the resource fork.  Unlike the bytes stored in the
  307. resource fork, the bytes in the data fork do not have to
  308. exhibit any particular internal structure. The application
  309. is responsible for interpreting the bytes in the data fork
  310. in whatever manner is appropriate. The bytes in the resource
  311. fork usually have a defined internal structure and contain
  312. data object like menus, dialog boxes, icons and pictures.
  313. Although all Macintosh files contain both a data fork and a
  314. resource fork, one or both of these forks may be empty.
  315.  
  316. MacZip stores data-forks and resource-forks separately. The
  317. Zipfile format does not allow to store two archive entries
  318. using exactly the same name. My solution is to modify the
  319. Path name of the resource-fork. All resource-fork names are
  320. prepended with a leading special directory named
  321. "XtraStuf.mac". So, when extracting on a Mac, you should
  322. never see this directory "XtraStuf.mac" on your *disk*.
  323.  
  324. On all foreign systems that support directories in filenames
  325. (e.g.: OS/2, Unix, DOS/Windows, VMS) you will get a
  326. directory "XtraStuf.mac" when extracting MacZip archives.
  327. You can delete the complete directory "XtraStuf.mac" since
  328. Mac resources do not make much sense outside the MacOS
  329. world.
  330.  
  331.  
  332.  
  333. Text encoding; Charsets of the Filenames:
  334. -----------------------------------------
  335.  
  336. The following information is only important if you plan to
  337. transfer archives across different platforms/language
  338. systems:
  339.  
  340. A typical Zip archive does not support different charsets.
  341. All filenames stored in the public area (= accessible by
  342. foreign systems other than MacOS) must be coded in the
  343. charset ISO-8859-1 (CP1252 in the Microsoft Windows world)
  344. or CP850 (DOSLatin1). The latter should only be used by Zip
  345. programs that mark the archive entries as "created under
  346. DOS". Apart from Macs, the commonly used platforms either
  347. support ISO-8859-1 directly, or are compatible with it. To
  348. achieve maximum compatibility, MacZip convert filenames from
  349. the Mac OS Roman character set to ISO-8859-1 and vice versa.
  350. But not every char of the charset MacRoman has their
  351. equivalent in ISO-8859-1. To make the mapping in most cases
  352. possible, I chose most similar chars or at least the MIDDLE
  353. DOT.
  354.  
  355. Mac OS Roman character set is used for at least the
  356. following Mac OS localizations: U.S., British, Canadian
  357. French, French, Swiss French, German, Swiss German, Italian,
  358. Swiss Italian, Dutch, Swedish, Norwegian, Danish, Finnish,
  359. Spanish, Catalan, Portuguese, Brazilian, and the default
  360. International system.
  361.  
  362. In all Mac OS encodings, character codes 0x00-0x7F are
  363. identical to ASCII, except that 
  364. - in Mac OS Japanese, yen sign replaces reverse solidus 
  365. - in Mac OS Arabic, Farsi, and Hebrew, some of the 
  366. punctuation in this range is treated as having strong 
  367. left-right directionality, although the corresponding 
  368. Unicode characters have neutral directionality So, for 
  369. best compatibility, confine filenames to the standard 
  370. 7-bit ASCII character set.
  371.  
  372. If you generate a filename list of your archive (unzip -l),
  373. you will see the converted filenames. Your can also extract
  374. the archive with the switch '-i' (= ignore mac filenames),
  375. and test your result.
  376.  
  377. This MacZip port uses its own filename stored in the
  378. archive. At the moment, the filename will be not converted.
  379. However, I'm planning to add support for Unicode.
  380.  
  381. Currently, the following Mac OS encodings are NOT supported:
  382. Japanese, ChineseTrad, Korean, Arabic, Hebrew, Greek,
  383. Cyrillic, Devanagari, Gurmukhi, Gujarati, Oriya, Bengali,
  384. Tamil, Telugu Kannada, Malayalam, Sinhalese, Burmese, Khmer,
  385. Thai, Laotian, Georgian, Armenian, ChineseSimp, Tibetan,
  386. Mongolian, Ethiopic, Vietnamese, ExtArabic and finally:
  387. Symbol - this is the encoding for the font named "Symbol".
  388. Dingbats - this is the encoding for the font named "Zapf
  389. Dingbats". If you extract an archive coded with one of these
  390. charsets you will probably get filenames with funny
  391. characters.
  392.  
  393. These problems apply only to filenames and NOT to the file
  394. content. of course: The content of the files will NEVER be
  395. converted !!
  396.  
  397.  
  398.  
  399. File-/Creator Type:
  400. -------------
  401.  
  402. This port uses the creator type 'IZip' and it is registered
  403. at Apple (since 08. March 1998). File types can not be
  404. registered any more. This port uses 'ZIP ' for Zip archive
  405. files. The creator 'IZip' type should be used for all future
  406. versions of MacZip.
  407.  
  408.  
  409.  
  410. Hints for proper restoration of file-time stamps:
  411. -------------------------------------------------
  412.  
  413. UnZip requires the host computer to have proper time zone
  414. information in order to handle certain tasks correctly (see
  415. unzip.doc).  To set the time zone on the Macintosh, go to
  416. the Map Control Panel and enter the correct number of hours
  417. (and, in a few locales, minutes) offset from Universal
  418. Time/Greenwich Mean Time.  For example, the US Pacific time
  419. zone is -8 hours from UTC/GMT during standard (winter) time
  420. and -7 hours from UTC/GMT during Daylight Savings Time.  The
  421. US Eastern time zone is -5 hours during the winter and -4
  422. hours during the summer.
  423.  
  424. Discussion of Daylight Savings Time
  425. -----------------------------------
  426. The setting in the Date & Time control panel for Daylight
  427. Savings time is a universal setting. That is, it assumes
  428. everybody in the world is observing Daylight Savings time
  429. when its check box is selected.
  430.  
  431. If other areas of the world are not observing Daylight
  432. Savings time when the check box is selected in the Date &
  433. Time control panel, then the Map control panel will be off
  434. by an hour for all areas that are not recognizing Daylight
  435. Savings time.
  436.  
  437. Conversely, if you set the Map control panel to an area that
  438. does not observe Daylight Savings time and deselect/uncheck
  439. the check box for Daylight Savings time in the Date & Time
  440. control panel, then time in all areas celebrating Daylight
  441. Savings time will be off by an hour in the Map control
  442. panel.
  443.  
  444. Example:
  445.     In the case of Hawaiians, sometimes they are three hours
  446.     behind Pacific Standard Time (PST) and sometimes two hours
  447.     behind Pacific Daylight Time (PDT). The Map control panel
  448.     can only calculate differences between time zones relative
  449.     to Greenwich Mean Time (GMT). Hawaii will always show up as
  450.     three hours past the Pacific time zone and five hours past
  451.     the Central time zone.
  452.  
  453.     When Hawaiians are not observing Daylight Savings time, but
  454.     the rest of the country is, there is no combination of
  455.     settings in Map and Date & Time control panels which will
  456.     enable you to display Hawaiian local time correctly AND
  457.     concurrently display the correct time in other places that
  458.     do observe Daylight Savings time.
  459.  
  460.     The knowledge about which countries observe Daylight Savings
  461.     time and which do not is not built into the Map control
  462.     panel, so it does not allow for such a complex calculation.
  463.  
  464.     This same situation also occurs in other parts of the world
  465.     besides Hawaii. Phoenix, Arizona is an example of an area of
  466.     the U.S. which also does not observe Daylight Savings time.
  467.  
  468. Conclusion: 
  469. MacZip only knows the GMT and DST offsets of the
  470. current time, not for the time in question.
  471.  
  472.  
  473. Projects & Packages:
  474. --------------------
  475.  
  476. A Note to version numbers: Version of MacZip is currently
  477. 1.03 and is based on the zip code version 2.3 and unzip code
  478. version 5.4. See About Box for current version and compiler
  479. build date.
  480.  
  481. Because of the amount of sources I splitted this port into
  482. several projects. See http://www.sitec.net/maczip for
  483. updates.
  484.  
  485. - core source parts:
  486.     unzxxx.zip
  487.     zipxxx.zip
  488.     These archives contains the main parts of the port. You can
  489.     build libraries and a standalone App with Metrowerks
  490.     standard console SIOUX. They contain only sources, no
  491.     executables. These archives are exact copies of the standard
  492.     Info-ZIP source distributions; they were only repackaged
  493.     under MacOS using MacZip, with one minor addition: For those
  494.     files that are stored in BinHex'ed format in the Info-ZIP
  495.     reference source archives, unpacked version that are ready
  496.     for use have been added.
  497.  
  498. - additional source part:
  499.     MacZipxxx.zip: contains all the GUI stuff and the project
  500.     files to build the main-app.  Only sources of the GUI, no 
  501.     zip or unzip code. To build MacZip successfully you will 
  502.     need to    also download the zip and unzip packages.
  503.  
  504. - executables:
  505.     MacZipxxxnc.hqx: contains only executables and 'README.TXT',
  506.     This version is without en-/decryption support !
  507.     MacZipxxxc.hqx:  contains only executables and 'README.TXT',
  508.     This version supports en-/decryption !
  509.  
  510. - encryption sources:
  511.     zcryptxx.zip: To build crypt versions of MacZip.
  512.     download from ftp://ftp.icce.rug.nl/infozip/ (and subdirectories)
  513.  
  514. - documentation:
  515.     MacZipDocu.zip: contains some further docus about the
  516.     algorithm, limits, Info-ZIP's appnote and a How-to-do
  517.     Webpage.
  518.  
  519.  
  520. Credits:
  521. --------
  522.  
  523. Macstuff.c and recurse.c: All the functions are from More
  524. Files. More Files fixes many of the broken or
  525. underfunctional parts of the file system. Thanks to Jim
  526. Luther. (see morefiles.doc)
  527.  
  528.  
  529.  
  530.  
  531. ---------------------------------------------------------------------------
  532. Footnotes:
  533.  
  534. 1. wild card:
  535.     The '*' is a wild card and means 'all files'
  536.     Just in case you don't know wild cards:
  537.     '*' is a place holder for any character.
  538.     e.g.:
  539.     "this*" matches with "this_file" or  "this_textfile" but it
  540.     doesn't match with "only_this_file" or  "first_this_textfile"
  541.     "*this*" matches with "this_file" or  "this_textfile" AND
  542.     matches with "only_this_file" or  "first_this_textfile"
  543.  
  544.  
  545. 2. Mac pathnames:
  546. The following characteristics of Macintosh pathnames should
  547. be noted:
  548.  
  549. A full pathname never begins with a colon, but must contain
  550. at least one colon. A partial pathname always begins with a
  551. colon separator except in the case where the file partial
  552. pathname is a simple file or directory name. Single trailing
  553. separator colons in full or partial pathnames are ignored
  554. except in the case of full pathnames to volumes. In full
  555. pathnames to volumes, the trailing separator colon is
  556. required. Consecutive separator colons can be used to ascend
  557. a level from a directory to its parent directory. Two
  558. consecutive separator colons will ascend one level, three
  559. consecutive separator colons will ascend two levels, and so
  560. on. Ascending can only occur from a directory; not a file.
  561.  
  562.  
  563.  
  564.  
  565.  
  566. ---------------------------------------------------------------------------
  567.  
  568. Dirk Haase
  569. ==========
  570.